﻿

namespace KinonekoSoftware.Foundation.Styles
{
    public class LightThemeSystem : ThemeSystem
    {
        public LightThemeSystem() : base()
        {
            Colors = new Dictionary<BrushKey, uint>();
            InitializeColors();
        }
        
        protected override void InitializeOverlayBrush(Dictionary<BrushKey, uint> colors)
        {
            colors.TryAdd(BrushKey.Overlay100, FromARGB(0x32, 0x00, 0x00, 0x00));
            colors.TryAdd(BrushKey.Overlay200, FromARGB(0x64, 0x00, 0x00, 0x00));
        }

        protected override void InitializeBackgroundBrush(Dictionary<BrushKey, uint> colors)
        {
            colors.TryAdd(BrushKey.BorderBrush, FromRGB( 0xc9, 0xc9, 0xc9));
            colors.TryAdd(BrushKey.BackgroundLevel1, FromRGB( 0xff, 0xff, 0xff));
            colors.TryAdd(BrushKey.BackgroundLevel2, FromRGB( 0xf1, 0xf1, 0xf1));
            colors.TryAdd(BrushKey.BackgroundLevel3, FromRGB( 0xE8, 0xE8, 0xE8));
            colors.TryAdd(BrushKey.BackgroundLevel4, FromRGB( 0xD9, 0xD9, 0xD9));
            colors.TryAdd(BrushKey.BackgroundLevel5, FromRGB( 0xCC, 0xCC, 0xCC));
            colors.TryAdd(BrushKey.BackgroundLevel6, FromRGB( 0xBF, 0xBF, 0xBF));
            colors.TryAdd(BrushKey.BackgroundInDisabled, FromRGB( 0xf6, 0xf6, 0xf6));
        }

        protected override void InitializeForegroundBrush(Dictionary<BrushKey, uint> colors)
        {
            colors.TryAdd(BrushKey.ForegroundLevel1, FromRGB( 0x00, 0x0d, 0x16));
            colors.TryAdd(BrushKey.ForegroundLevel2, FromRGB( 0x75, 0x81, 0x8a));
            colors.TryAdd(BrushKey.ForegroundLevel3, FromRGB( 0x9f, 0xa7, 0xad));
            colors.TryAdd(BrushKey.ForegroundOther, FromRGB( 0x84, 0x92, 0xa6));
            colors.TryAdd(BrushKey.ForegroundInDisabled, FromRGB( 0xba, 0xc0, 0xc4));
            colors.TryAdd(BrushKey.ForegroundInHighlight, FromRGB( 0xff, 0xff, 0xff));
            colors.TryAdd(BrushKey.ForegroundInAdaptive1, FromRGB( 0x00, 0x0d, 0x16));
            colors.TryAdd(BrushKey.ForegroundInAdaptive2, FromRGB(0x75, 0x81, 0x8a));
        }

        protected override void InitializeAdaptiveBrush(Dictionary<BrushKey, uint> colors)
        {
            colors.TryAdd(BrushKey.AdaptiveLevel1, FromRGB( 0xA6, 0xA6, 0xA6));
            colors.TryAdd(BrushKey.AdaptiveLevel2, FromRGB( 0x8C, 0x8C, 0x8C));
            colors.TryAdd(BrushKey.AdaptiveLevel3, FromRGB( 0x73, 0x73, 0x73));
        }
    }
}